// pages/login/login.js
Page({
    data: {
      // 当前激活的选项卡
      currentTab: 'login',
      
      // 登录表单数据
      phone: '',
      password: '',
      showPassword: false,
      
      // 注册表单数据
      regPhone: '',
      code: '',
      regPassword: '',
      regPassword2: '',
      showRegPassword: false,
      showRegPassword2: false,
      agreed: true,
      
      // 验证码倒计时
      counting: false,
      count: 60,

      // 新增：模拟登录的预设账号密码
    mockUser: {
        phone: '19892288117',
        password: '123456'
      }
    },
  
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
      // 可以在这里处理页面加载时的逻辑，比如从其他页面带过来的参数
    },
  
    /**
     * 切换登录/注册选项卡
     * @param {Object} e 事件对象
     */
    switchTab(e) {
      const tab = e.currentTarget.dataset.tab;
      if (this.data.currentTab !== tab) {
        this.setData({
          currentTab: tab
        });
      }
    },
  
    /**
     * 统一处理表单输入
     * @param {Object} e 事件对象
     */
    handleInput(e) {
      const field = e.currentTarget.dataset.field;
      const value = e.detail.value;
      this.setData({
        [field]: value
      });
    },
  
    /**
     * 切换密码可见性 (登录)
     */
    togglePassword() {
      this.setData({
        showPassword: !this.data.showPassword
      });
    },
  
    /**
     * 切换密码可见性 (注册)
     */
    toggleRegPassword() {
      this.setData({
        showRegPassword: !this.data.showRegPassword
      });
    },
  
    /**
     * 切换确认密码可见性 (注册)
     */
    toggleRegPassword2() {
      this.setData({
        showRegPassword2: !this.data.showRegPassword2
      });
    },
  
    /**
     * 切换用户协议勾选状态
     * @param {Object} e 事件对象
     */
    toggleAgreement(e) {
      this.setData({
        agreed: e.detail.value.length > 0
      });
    },
  
    /**
     * 获取验证码
     */
    getCode() {
      const { regPhone } = this.data;
      
      // 1. 验证手机号
      if (!regPhone) {
        wx.showToast({ title: '请输入手机号', icon: 'none' });
        return;
      }
      if (!/^1[3-9]\d{9}$/.test(regPhone)) {
        wx.showToast({ title: '请输入正确的手机号', icon: 'none' });
        return;
      }
      
      // 2. 开始倒计时
      this.setData({ counting: true });
      const timer = setInterval(() => {
        if (this.data.count <= 1) {
          clearInterval(timer);
          this.setData({ counting: false, count: 60 });
        } else {
          this.setData({ count: this.data.count - 1 });
        }
      }, 1000);
      
      // 3. TODO: 调用后端接口发送验证码
      wx.showToast({ title: '验证码已发送', icon: 'success' });
      console.log('向手机号', regPhone, '发送验证码');
    },
  
    /**
     * 微信快捷登录
     */
    wechatLogin() {
      wx.showLoading({ title: '正在登录...' });
      
      // 1. 调用微信登录接口获取 code
      wx.login({
        success: (res) => {
          if (res.code) {
            // 2. TODO: 将 code 发送到后端换取 openid 和 session_key
            console.log('获取到的 wx.login code:', res.code);
            
            // 模拟登录成功
            setTimeout(() => {
              wx.hideLoading();
              wx.showToast({ title: '登录成功' });
              // 跳转至首页
              wx.switchTab({ url: '/pages/index/index' });
            }, 1000);
          } else {
            wx.hideLoading();
            wx.showToast({ title: '登录失败，请重试', icon: 'none' });
            console.error('wx.login 失败:', res.errMsg);
          }
        },
        fail: (err) => {
          wx.hideLoading();
          wx.showToast({ title: '登录失败，请检查网络', icon: 'none' });
          console.error('wx.login 调用失败:', err);
        }
      });
    },
  
    /**
     * 处理登录表单提交
     * @param {Object} e 事件对象
     */
    handleLogin(e) {
      const { phone, password } = this.data;
      
      // 1. 表单验证
      if (!phone || !password) {
        wx.showToast({ title: '请填写完整信息', icon: 'none' });
        return;
      }
      if (!/^1[3-9]\d{9}$/.test(phone)) {
        wx.showToast({ title: '请输入正确的手机号', icon: 'none' });
        return;
      }
      
      wx.showLoading({ title: '登录中...' });
      
      // 2. TODO: 调用后端登录接口
      console.log('登录请求数据:', { phone, password });
      
      // 模拟登录成功
      if(phone === 19138337828 && password === '123456'){
          setTimeout(() => {
        wx.hideLoading();
        wx.showToast({ title: '登录成功' });
        // 跳转至首页
        wx.switchTab({ url: '/pages/tabBar/home/home' });
      }, 1000);
      };
    },
  
    /**
     * 处理注册表单提交
     * @param {Object} e 事件对象
     */
    handleRegister(e) {
      const { regPhone, code, regPassword, regPassword2, agreed } = this.data;
      
      // 1. 表单验证
      if (!regPhone || !code || !regPassword || !regPassword2) {
        wx.showToast({ title: '请填写完整信息', icon: 'none' });
        return;
      }
      if (!/^1[3-9]\d{9}$/.test(regPhone)) {
        wx.showToast({ title: '请输入正确的手机号', icon: 'none' });
        return;
      }
      if (regPassword.length < 6) {
        wx.showToast({ title: '密码长度不能少于6位', icon: 'none' });
        return;
      }
      if (regPassword !== regPassword2) {
        wx.showToast({ title: '两次输入的密码不一致', icon: 'none' });
        return;
      }
      if (!agreed) {
        wx.showToast({ title: '请阅读并同意用户协议', icon: 'none' });
        return;
      }
      
      wx.showLoading({ title: '注册中...' });
      
      // 2. TODO: 调用后端注册接口
      console.log('注册请求数据:', { phone: regPhone, code, password: regPassword });
      
      // 模拟注册成功
      setTimeout(() => {
        wx.hideLoading();
        wx.showToast({ title: '注册成功' });
        // 注册成功后切换到登录选项卡，并自动填充手机号
        this.setData({
          currentTab: 'login',
          phone: regPhone
        });
      }, 1000);
    },

    // 新增：模拟登录逻辑
  mockLogin() {
    const { phone, password, mockUser } = this.data;

    // 1. 前端表单格式校验（和真实登录保持一致）
    if (!/^1[3-9]\d{9}$/.test(phone)) {
      wx.showToast({ title: '请输入正确的手机号格式', icon: 'none' });
      return;
    }
    if (password.length < 6) {
      wx.showToast({ title: '密码长度不能少于6位', icon: 'none' });
      return;
    }

    // 2. 模拟与后端校验（直接比较预设值）
    wx.showLoading({ title: '模拟登录中...' });

    // 模拟网络延迟（让体验更真实）
    setTimeout(() => {
      wx.hideLoading();

      // 3. 判断是否匹配预设账号密码
      if (phone === mockUser.phone && password === mockUser.password) {
        // 模拟登录成功
        wx.showToast({ title: '模拟登录成功' });
        
        // 存储模拟 Token（可选，让后续页面逻辑连贯）
        wx.setStorageSync('token', 'mock-token-' + Date.now());

        // 跳转到首页（如果是 TabBar 页面用 switchTab）
        wx.switchTab({
          url: '/pages/tabBar/home/home'
        });
      } else {
        // 模拟登录失败
        wx.showToast({ title: '模拟登录失败：账号或密码错误', icon: 'none' });
      }
    }, 1000); // 模拟1秒延迟
  }
  });